<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>PU2CLR Si4735 Arduino Library: Si4735-D60 Single Side Band (SSB) support</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectlogo"><img alt="Logo" src="logo_si4735.png"/></td>
  <td id="projectalign">
   <div id="projectname">PU2CLR Si4735 Arduino Library<span id="projectnumber">&#160;2.1.4</span>
   </div>
   <div id="projectbrief">Arduino Library for Si47XX Devices - By Ricardo Lima Caratti</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('group__group17.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle"><div class="title">Si4735-D60 Single Side Band (SSB) support</div></div>
</div><!--header-->
<div class="contents">

<p>Single Side Band (SSB) implementation.<br  />
 First of all, the SSB patch content <b>is not part of this library</b>. The patches used here were made available by Mr. Vadim Afonkin on his <a href="https://www.dropbox.com/sh/xzofrl8rfaaqh59/AAA5au2_CVdi50NBtt0IivyIa?dl=0">Dropbox repository</a>. Please note that the author of this library does not encourage anyone to use the SSB patches content for commercial purposes. In other words, while this library supports SSB patches, the patches themselves are not a part of this library.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga5a10cea82279f48a13d40298cf79e6ce"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga5a10cea82279f48a13d40298cf79e6ce">SI4735::getAntennaTuningCapacitor</a> ()</td></tr>
<tr class="memdesc:ga5a10cea82279f48a13d40298cf79e6ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the Antenna Tuning Capacitor value.  <br /></td></tr>
<tr class="separator:ga5a10cea82279f48a13d40298cf79e6ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6e1e0e48d71e09debb07fc6dbe884829"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga6e1e0e48d71e09debb07fc6dbe884829">SI4735::setAvcAmMaxGain</a> ()</td></tr>
<tr class="memdesc:ga6e1e0e48d71e09debb07fc6dbe884829"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the Avc Am Max Gain to maximum gain (0x7800)  <br /></td></tr>
<tr class="separator:ga6e1e0e48d71e09debb07fc6dbe884829"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf2f9f04bd7f05a882c39621db162c027"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#gaf2f9f04bd7f05a882c39621db162c027">SI4735::setAvcAmMinGain</a> ()</td></tr>
<tr class="memdesc:gaf2f9f04bd7f05a882c39621db162c027"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the Avc Am Max Gain to minimal gain (0x1000)  <br /></td></tr>
<tr class="separator:gaf2f9f04bd7f05a882c39621db162c027"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4333e267458eb9b00a9319f81255c0f1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga4333e267458eb9b00a9319f81255c0f1">SI4735::setAvcAmDefaultGain</a> ()</td></tr>
<tr class="memdesc:ga4333e267458eb9b00a9319f81255c0f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the Avc Am Max Gain to default gain (0x2A80)  <br /></td></tr>
<tr class="separator:ga4333e267458eb9b00a9319f81255c0f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga27dd7dfd46583eb5be91cfc9461807ff"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga27dd7dfd46583eb5be91cfc9461807ff">SI4735::getCurrentAvcAmMaxGain</a> ()</td></tr>
<tr class="memdesc:ga27dd7dfd46583eb5be91cfc9461807ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current Avc Am Max Gain.  <br /></td></tr>
<tr class="separator:ga27dd7dfd46583eb5be91cfc9461807ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga05bbe1546d61d7ca3591824445084e70"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga05bbe1546d61d7ca3591824445084e70">SI4735::setAmSoftMuteMaxAttenuation</a> (uint8_t smattn=0)</td></tr>
<tr class="memdesc:ga05bbe1546d61d7ca3591824445084e70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the Am Soft Mute Max Attenuation.  <br /></td></tr>
<tr class="separator:ga05bbe1546d61d7ca3591824445084e70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7f9f0eb9946d629e2e6d7e7901af86b9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga7f9f0eb9946d629e2e6d7e7901af86b9">SI4735::setSsbSoftMuteMaxAttenuation</a> (uint8_t smattn=0)</td></tr>
<tr class="memdesc:ga7f9f0eb9946d629e2e6d7e7901af86b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the SSB Soft Mute Max Attenuation object.  <br /></td></tr>
<tr class="separator:ga7f9f0eb9946d629e2e6d7e7901af86b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa42de6f58ebc0d9bc2693477b5fe7734"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#gaa42de6f58ebc0d9bc2693477b5fe7734">SI4735::setSsbIfAgcReleaseRate</a> (uint8_t param=140)</td></tr>
<tr class="memdesc:gaa42de6f58ebc0d9bc2693477b5fe7734"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the number of milliseconds the low IF peak detector.  <br /></td></tr>
<tr class="separator:gaa42de6f58ebc0d9bc2693477b5fe7734"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2852abc7a2469362f1c1fe64758693a6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga2852abc7a2469362f1c1fe64758693a6">SI4735::setSsbIfAgcAttackRate</a> (uint8_t param=4)</td></tr>
<tr class="memdesc:ga2852abc7a2469362f1c1fe64758693a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the IF AGC attack rate.  <br /></td></tr>
<tr class="separator:ga2852abc7a2469362f1c1fe64758693a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga211bb7fb7b339e005e8a0ae2e2813b79"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga211bb7fb7b339e005e8a0ae2e2813b79">SI4735::setSsbAgcAttackRate</a> (uint16_t parameter)</td></tr>
<tr class="memdesc:ga211bb7fb7b339e005e8a0ae2e2813b79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the AGC attack rate on SSB mode.  <br /></td></tr>
<tr class="separator:ga211bb7fb7b339e005e8a0ae2e2813b79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga65ae2ed5be90932da9b26073f87a8bda"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga65ae2ed5be90932da9b26073f87a8bda">SI4735::setSsbAgcReleaseRate</a> (uint16_t parameter)</td></tr>
<tr class="memdesc:ga65ae2ed5be90932da9b26073f87a8bda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the AGC Release rate on SSB mode.  <br /></td></tr>
<tr class="separator:ga65ae2ed5be90932da9b26073f87a8bda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae9d50b24642784943fefedbac944a8e8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#gae9d50b24642784943fefedbac944a8e8">SI4735::setSBBSidebandCutoffFilter</a> (uint8_t SBCUTFLT)</td></tr>
<tr class="separator:gae9d50b24642784943fefedbac944a8e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga55cf9a091d314a1aa21552f2254f756f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga55cf9a091d314a1aa21552f2254f756f">SI4735::setSSBBfo</a> (int offset)</td></tr>
<tr class="memdesc:ga55cf9a091d314a1aa21552f2254f756f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the SSB Beat Frequency Offset (BFO).  <br /></td></tr>
<tr class="separator:ga55cf9a091d314a1aa21552f2254f756f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9224e7d4ef14c887da96dbefd2dcefd3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga9224e7d4ef14c887da96dbefd2dcefd3">SI4735::setSSBConfig</a> (uint8_t AUDIOBW, uint8_t SBCUTFLT, uint8_t AVC_DIVIDER, uint8_t AVCEN, uint8_t SMUTESEL, uint8_t DSP_AFCDIS)</td></tr>
<tr class="memdesc:ga9224e7d4ef14c887da96dbefd2dcefd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the SSB receiver mode.  <br /></td></tr>
<tr class="separator:ga9224e7d4ef14c887da96dbefd2dcefd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6cde26a5abf759a628012d1457d85c72"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga6cde26a5abf759a628012d1457d85c72">SI4735::setSSBDspAfc</a> (uint8_t DSP_AFCDIS)</td></tr>
<tr class="memdesc:ga6cde26a5abf759a628012d1457d85c72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets DSP AFC disable or enable.  <br /></td></tr>
<tr class="separator:ga6cde26a5abf759a628012d1457d85c72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga91251dfc2ff9488aaef3aa1a528097d9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga91251dfc2ff9488aaef3aa1a528097d9">SI4735::setSSBSoftMute</a> (uint8_t SMUTESEL)</td></tr>
<tr class="memdesc:ga91251dfc2ff9488aaef3aa1a528097d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets SSB Soft-mute Based on RSSI or SNR Selection:  <br /></td></tr>
<tr class="separator:ga91251dfc2ff9488aaef3aa1a528097d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacacf1dac4c0ec170d1da629dd1fd30cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#gacacf1dac4c0ec170d1da629dd1fd30cb">SI4735::setSSBAutomaticVolumeControl</a> (uint8_t AVCEN)</td></tr>
<tr class="memdesc:gacacf1dac4c0ec170d1da629dd1fd30cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets SSB Automatic Volume Control (AVC) for SSB mode.  <br /></td></tr>
<tr class="separator:gacacf1dac4c0ec170d1da629dd1fd30cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafc5e87c50a1eba6de9504c114cc1cb70"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#gafc5e87c50a1eba6de9504c114cc1cb70">SI4735::setSSBAvcDivider</a> (uint8_t AVC_DIVIDER)</td></tr>
<tr class="memdesc:gafc5e87c50a1eba6de9504c114cc1cb70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets AVC Divider.  <br /></td></tr>
<tr class="separator:gafc5e87c50a1eba6de9504c114cc1cb70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7554815b6d83128c5b15206e69c51f9f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga7554815b6d83128c5b15206e69c51f9f">SI4735::setSSBSidebandCutoffFilter</a> (uint8_t SBCUTFLT)</td></tr>
<tr class="memdesc:ga7554815b6d83128c5b15206e69c51f9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets SBB Sideband Cutoff Filter for band pass and low pass filters.  <br /></td></tr>
<tr class="separator:ga7554815b6d83128c5b15206e69c51f9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6b2ad4d027463262350134490d16bf32"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga6b2ad4d027463262350134490d16bf32">SI4735::setSSBAudioBandwidth</a> (uint8_t AUDIOBW)</td></tr>
<tr class="memdesc:ga6b2ad4d027463262350134490d16bf32"><td class="mdescLeft">&#160;</td><td class="mdescRight">SSB Audio Bandwidth for SSB mode.  <br /></td></tr>
<tr class="separator:ga6b2ad4d027463262350134490d16bf32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3e907ddf560a0c8286fa55768701b3da"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga3e907ddf560a0c8286fa55768701b3da">SI4735::setSSB</a> (uint8_t usblsb)</td></tr>
<tr class="memdesc:ga3e907ddf560a0c8286fa55768701b3da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the radio to AM function.  <br /></td></tr>
<tr class="separator:ga3e907ddf560a0c8286fa55768701b3da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c48f2af416b1f89dbedbfbe9a637620"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga7c48f2af416b1f89dbedbfbe9a637620">SI4735::setSSB</a> (uint16_t fromFreq, uint16_t toFreq, uint16_t intialFreq, uint16_t step, uint8_t usblsb)</td></tr>
<tr class="separator:ga7c48f2af416b1f89dbedbfbe9a637620"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae1d866bfc4cb37c4268c8942b4b4d062"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#gae1d866bfc4cb37c4268c8942b4b4d062">SI4735::sendSSBModeProperty</a> ()</td></tr>
<tr class="memdesc:gae1d866bfc4cb37c4268c8942b4b4d062"><td class="mdescLeft">&#160;</td><td class="mdescRight">Just send the property SSB_MOD to the device. Internal use (privete method).  <br /></td></tr>
<tr class="separator:gae1d866bfc4cb37c4268c8942b4b4d062"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5507f4d98f389247320eb19b16395a27"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga5507f4d98f389247320eb19b16395a27">SI4735::getSsbAgcStatus</a> ()</td></tr>
<tr class="memdesc:ga5507f4d98f389247320eb19b16395a27"><td class="mdescLeft">&#160;</td><td class="mdescRight">Queries SSB Automatic Gain Control STATUS.  <br /></td></tr>
<tr class="separator:ga5507f4d98f389247320eb19b16395a27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2da03a7257b7ca821f984bfa7fef97fa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga2da03a7257b7ca821f984bfa7fef97fa">SI4735::setSsbAgcOverrite</a> (uint8_t SSBAGCDIS, uint8_t SSBAGCNDX, uint8_t reserved=0)</td></tr>
<tr class="memdesc:ga2da03a7257b7ca821f984bfa7fef97fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Automatic Gain Control setup.  <br /></td></tr>
<tr class="separator:ga2da03a7257b7ca821f984bfa7fef97fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadfc2c82524918224cf19fec5b7fcf6d1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group01.html#unionsi47x__firmware__query__library">si47x_firmware_query_library</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#gadfc2c82524918224cf19fec5b7fcf6d1">SI4735::queryLibraryId</a> ()</td></tr>
<tr class="memdesc:gadfc2c82524918224cf19fec5b7fcf6d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Query the library information of the Si47XX device.  <br /></td></tr>
<tr class="separator:gadfc2c82524918224cf19fec5b7fcf6d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafaabd6c73b7ad7c20ae959d5b75c1e71"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#gafaabd6c73b7ad7c20ae959d5b75c1e71">SI4735::patchPowerUp</a> ()</td></tr>
<tr class="memdesc:gafaabd6c73b7ad7c20ae959d5b75c1e71"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method can be used to prepare the device to apply SSBRX patch.  <br /></td></tr>
<tr class="separator:gafaabd6c73b7ad7c20ae959d5b75c1e71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0fcfd8e487c594707b3f2aaa71a86d68"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga0fcfd8e487c594707b3f2aaa71a86d68">SI4735::ssbPowerUp</a> ()</td></tr>
<tr class="memdesc:ga0fcfd8e487c594707b3f2aaa71a86d68"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function can be useful for debug and test.  <br /></td></tr>
<tr class="separator:ga0fcfd8e487c594707b3f2aaa71a86d68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafd1343bd8b4f0c290ef81c418222036c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#gafd1343bd8b4f0c290ef81c418222036c">SI4735::downloadPatch</a> (const uint8_t *<a class="el" href="patch__full_8h.html#a52825929f968bc7a855a559fa9ebba7b">ssb_patch_content</a>, const uint16_t ssb_patch_content_size)</td></tr>
<tr class="memdesc:gafd1343bd8b4f0c290ef81c418222036c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transfers the content of a patch stored in a array of bytes to the <a class="el" href="class_s_i4735.html" title="SI4735 Class.">SI4735</a> device.  <br /></td></tr>
<tr class="separator:gafd1343bd8b4f0c290ef81c418222036c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf1b8947db928728ada66ef3edaa79e76"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#gaf1b8947db928728ada66ef3edaa79e76">SI4735::downloadCompressedPatch</a> (const uint8_t *<a class="el" href="patch__full_8h.html#a52825929f968bc7a855a559fa9ebba7b">ssb_patch_content</a>, const uint16_t ssb_patch_content_size, const uint16_t *<a class="el" href="patch__ssb__compressed_8h.html#aa53e4395accdd894bda0ffc72219f8cb">cmd_0x15</a>, const int16_t cmd_0x15_size)</td></tr>
<tr class="memdesc:gaf1b8947db928728ada66ef3edaa79e76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deal with compressed SSB patch.  <br /></td></tr>
<tr class="separator:gaf1b8947db928728ada66ef3edaa79e76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga591bbfe4dbd39a6de29a37935a6abee5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga591bbfe4dbd39a6de29a37935a6abee5">SI4735::loadPatch</a> (const uint8_t *<a class="el" href="patch__full_8h.html#a52825929f968bc7a855a559fa9ebba7b">ssb_patch_content</a>, const uint16_t ssb_patch_content_size, uint8_t ssb_audiobw=1)</td></tr>
<tr class="memdesc:ga591bbfe4dbd39a6de29a37935a6abee5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads a given SSB patch content.  <br /></td></tr>
<tr class="separator:ga591bbfe4dbd39a6de29a37935a6abee5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga03bfe4b1e5ec84b7a933309095215f38"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga03bfe4b1e5ec84b7a933309095215f38">SI4735::loadCompressedPatch</a> (const uint8_t *<a class="el" href="patch__full_8h.html#a52825929f968bc7a855a559fa9ebba7b">ssb_patch_content</a>, const uint16_t ssb_patch_content_size, const uint16_t *<a class="el" href="patch__ssb__compressed_8h.html#aa53e4395accdd894bda0ffc72219f8cb">cmd_0x15</a>, const int16_t cmd_0x15_size, uint8_t ssb_audiobw=1)</td></tr>
<tr class="memdesc:ga03bfe4b1e5ec84b7a933309095215f38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads the SSB compressed patch content.  <br /></td></tr>
<tr class="separator:ga03bfe4b1e5ec84b7a933309095215f38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7751b076ce0bcb62eade4f92cd8d93a6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group01.html#unionsi4735__eeprom__patch__header">si4735_eeprom_patch_header</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group17.html#ga7751b076ce0bcb62eade4f92cd8d93a6">SI4735::downloadPatchFromEeprom</a> (int eeprom_i2c_address)</td></tr>
<tr class="memdesc:ga7751b076ce0bcb62eade4f92cd8d93a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transfers the content of a patch stored in an eeprom to the <a class="el" href="class_s_i4735.html" title="SI4735 Class.">SI4735</a> device.  <br /></td></tr>
<tr class="separator:ga7751b076ce0bcb62eade4f92cd8d93a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Single Side Band (SSB) implementation.<br  />
 First of all, the SSB patch content <b>is not part of this library</b>. The patches used here were made available by Mr. Vadim Afonkin on his <a href="https://www.dropbox.com/sh/xzofrl8rfaaqh59/AAA5au2_CVdi50NBtt0IivyIa?dl=0">Dropbox repository</a>. Please note that the author of this library does not encourage anyone to use the SSB patches content for commercial purposes. In other words, while this library supports SSB patches, the patches themselves are not a part of this library. </p>
<p>This implementation was tested only on Si4735-D60 and SI4732-A10 devices.</p>
<p>SSB modulation is a refinement of amplitude modulation that one of the side band and the carrier are suppressed.</p>
<p>What does SSB patch means? In this context, a patch is a piece of software used to change the behavior of the SI4735-D60/SI4732-A10 device. There is little information available about patching the SI4735-D60/SI4732-A10.</p>
<p>The following information is the understanding of the author of this project and is not necessarily correct.</p>
<p>A patch is executed internally (run by internal MCU) of the device. Usually, patches are used to fix bugs or add improvements and new features over what the firmware installed in the internal ROM of the device offers. Patches for the <a class="el" href="class_s_i4735.html" title="SI4735 Class.">SI4735</a> are distributed in binary form and are transferred to the internal RAM of the device by the host MCU (in this case, Arduino boards).</p>
<p>Since the RAM is volatile memory, the patch stored into the device gets lost when you turn off the system. Consequently, the content of the patch has to be transferred to the device every time the device is powered up.</p>
<p>I would like to thank Mr Vadim Afonkin for making the SSBRX patches available for SI4735-D60/SI4732-A10 on his Dropbox repository. On this repository you have two files, amrx_6_0_1_ssbrx_patch_full_0x9D29.csg and amrx_6_0_1_ssbrx_patch_init_0xA902.csg. The patch content of the original files is in hexadecimal format, stored in an ASCII text file. If you are not using C/C++ or if you want to load the files directly to the <a class="el" href="class_s_i4735.html" title="SI4735 Class.">SI4735</a>, you must convert the hexadecimal values to numeric values from 0 to 255. For example: 0x15 = 21 (00010101); 0x16 = 22 (00010110); 0x01 = 1 (00000001); 0xFF = 255 (11111111);</p>
<p>ATTENTION: The author of this project cannot guarantee that procedures shown here will work in your development environment. Proceed at your own risk. This library works with the I²C communication protocol to send an SSB extension PATCH to SI4735-D60 and SI4732-A10 devices. Once again, the author disclaims any and all liability for any damage or effects this procedure may have on your devices. Procced at your own risk. </p><dl class="section see"><dt>See also</dt><dd>AN332 REV 0.8 UNIVERSAL PROGRAMMING GUIDE; pages 3 and 5 </dd></dl>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga5a10cea82279f48a13d40298cf79e6ce" name="ga5a10cea82279f48a13d40298cf79e6ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5a10cea82279f48a13d40298cf79e6ce">&#9670;&#160;</a></span>getAntennaTuningCapacitor()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t SI4735::getAntennaTuningCapacitor </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the Antenna Tuning Capacitor value. </p>
<p>Returns the current antenna tuning capacitor value. The tuning capacitance is 95 fF x READANTCAP + 7 pF.</p>
<p>ON AM or SSB mode, the MULT attribute stores the high byte of READANTCAP and the attribute READANTCAP by itself stores the low byte.</p>
<dl class="section see"><dt>See also</dt><dd>Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); pages 74,74, 140 and 141. </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>uint8_t capacitance </dd></dl>

</div>
</div>
<a id="ga6e1e0e48d71e09debb07fc6dbe884829" name="ga6e1e0e48d71e09debb07fc6dbe884829"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6e1e0e48d71e09debb07fc6dbe884829">&#9670;&#160;</a></span>setAvcAmMaxGain()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setAvcAmMaxGain </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the Avc Am Max Gain to maximum gain (0x7800) </p>

</div>
</div>
<a id="gaf2f9f04bd7f05a882c39621db162c027" name="gaf2f9f04bd7f05a882c39621db162c027"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf2f9f04bd7f05a882c39621db162c027">&#9670;&#160;</a></span>setAvcAmMinGain()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setAvcAmMinGain </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the Avc Am Max Gain to minimal gain (0x1000) </p>

</div>
</div>
<a id="ga4333e267458eb9b00a9319f81255c0f1" name="ga4333e267458eb9b00a9319f81255c0f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4333e267458eb9b00a9319f81255c0f1">&#9670;&#160;</a></span>setAvcAmDefaultGain()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setAvcAmDefaultGain </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the Avc Am Max Gain to default gain (0x2A80) </p>

</div>
</div>
<a id="ga27dd7dfd46583eb5be91cfc9461807ff" name="ga27dd7dfd46583eb5be91cfc9461807ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga27dd7dfd46583eb5be91cfc9461807ff">&#9670;&#160;</a></span>getCurrentAvcAmMaxGain()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t SI4735::getCurrentAvcAmMaxGain </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the current Avc Am Max Gain. </p>
<dl class="section return"><dt>Returns</dt><dd>uint8_t Current AVC gain index value </dd></dl>

</div>
</div>
<a id="ga05bbe1546d61d7ca3591824445084e70" name="ga05bbe1546d61d7ca3591824445084e70"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga05bbe1546d61d7ca3591824445084e70">&#9670;&#160;</a></span>setAmSoftMuteMaxAttenuation()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setAmSoftMuteMaxAttenuation </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>smattn</em> = <code>0</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the Am Soft Mute Max Attenuation. </p>
<p>This function can be useful to disable Soft Mute. The value 0 disable soft mute.</p>
<p>Specified in units of dB. Default maximum attenuation is 8 dB. It works for AM and SSB.</p>
<dl class="section see"><dt>See also</dt><dd>Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); page 158.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">smattn</td><td>Maximum attenuation to apply when in soft mute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga7f9f0eb9946d629e2e6d7e7901af86b9" name="ga7f9f0eb9946d629e2e6d7e7901af86b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7f9f0eb9946d629e2e6d7e7901af86b9">&#9670;&#160;</a></span>setSsbSoftMuteMaxAttenuation()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setSsbSoftMuteMaxAttenuation </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>smattn</em> = <code>0</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the SSB Soft Mute Max Attenuation object. </p>
<p>Sets maximum attenuation during soft mute (dB). Set to 0 to disable soft mute.</p>
<p>Specified in units of dB. Default maximum attenuation is 8 dB.</p>
<p>You can use setAmSoftMuteMaxAttenuation instead. Same AM property values. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">smattn</td><td>Maximum attenuation to apply when in soft mute. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gaa42de6f58ebc0d9bc2693477b5fe7734" name="gaa42de6f58ebc0d9bc2693477b5fe7734"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa42de6f58ebc0d9bc2693477b5fe7734">&#9670;&#160;</a></span>setSsbIfAgcReleaseRate()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setSsbIfAgcReleaseRate </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>param</em> = <code>140</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the number of milliseconds the low IF peak detector. </p>
<p>Sets the number of milliseconds the low IF peak detector must not be exceeded before increasing the gain. Default value is 140 (approximately 40 dB / s). </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">param</td><td>number of milliseconds ( from 4 to 248; step 4); default value 0x008C (140). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga2852abc7a2469362f1c1fe64758693a6" name="ga2852abc7a2469362f1c1fe64758693a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2852abc7a2469362f1c1fe64758693a6">&#9670;&#160;</a></span>setSsbIfAgcAttackRate()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setSsbIfAgcAttackRate </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>param</em> = <code>4</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the IF AGC attack rate. </p>
<p>Large values provide slower attack, and smaller values provide faster attack </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">param</td><td>number of milliseconds ( from 4 to 248; step 4); default value 4. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga211bb7fb7b339e005e8a0ae2e2813b79" name="ga211bb7fb7b339e005e8a0ae2e2813b79"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga211bb7fb7b339e005e8a0ae2e2813b79">&#9670;&#160;</a></span>setSsbAgcAttackRate()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setSsbAgcAttackRate </td>
          <td>(</td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>parameter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the AGC attack rate on SSB mode. </p>
<p>Large values provide slower attack, and smaller values provide faster attack.. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__group17.html#ga211bb7fb7b339e005e8a0ae2e2813b79" title="Sets the AGC attack rate on SSB mode.">setSsbAgcAttackRate</a> </dd>
<dd>
AN332 REV 0.8 UNIVERSAL PROGRAMMING GUIDE; page 29 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">parameter</td><td>Range: 4–248 (The default is 0x04) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga65ae2ed5be90932da9b26073f87a8bda" name="ga65ae2ed5be90932da9b26073f87a8bda"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga65ae2ed5be90932da9b26073f87a8bda">&#9670;&#160;</a></span>setSsbAgcReleaseRate()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setSsbAgcReleaseRate </td>
          <td>(</td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>parameter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the AGC Release rate on SSB mode. </p>
<p>Larger values provide slower release, and smaller values provide faster release. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__group17.html#ga211bb7fb7b339e005e8a0ae2e2813b79" title="Sets the AGC attack rate on SSB mode.">setSsbAgcAttackRate</a> </dd>
<dd>
AN332 REV 0.8 UNIVERSAL PROGRAMMING GUIDE; page 29 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">parameter</td><td>Range: 4–248 (The default is 0x18) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gae9d50b24642784943fefedbac944a8e8" name="gae9d50b24642784943fefedbac944a8e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae9d50b24642784943fefedbac944a8e8">&#9670;&#160;</a></span>setSBBSidebandCutoffFilter()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setSBBSidebandCutoffFilter </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>SBCUTFLT</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000004">Deprecated:</a></b></dt><dd>Use setSSBSidebandCutoffFilter instead. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__group17.html#ga7554815b6d83128c5b15206e69c51f9f" title="Sets SBB Sideband Cutoff Filter for band pass and low pass filters.">setSSBSidebandCutoffFilter</a> </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SBCUTFLT</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga55cf9a091d314a1aa21552f2254f756f" name="ga55cf9a091d314a1aa21552f2254f756f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga55cf9a091d314a1aa21552f2254f756f">&#9670;&#160;</a></span>setSSBBfo()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setSSBBfo </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>offset</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the SSB Beat Frequency Offset (BFO). </p>
<dl class="section see"><dt>See also</dt><dd>AN332 REV 0.8 UNIVERSAL PROGRAMMING GUIDE; pages 5 and 23</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">offset</td><td>16-bit signed value (unit in Hz). The valid range is -16383 to +16383 Hz. </td></tr>
  </table>
  </dd>
</dl>

<p class="reference">References <a class="el" href="group__group06.html#ga7b45c1b22c3c1a3f2326bee913d1e1e0">SI4735::waitToSend()</a>.</p>

</div>
</div>
<a id="ga9224e7d4ef14c887da96dbefd2dcefd3" name="ga9224e7d4ef14c887da96dbefd2dcefd3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9224e7d4ef14c887da96dbefd2dcefd3">&#9670;&#160;</a></span>setSSBConfig()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setSSBConfig </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>AUDIOBW</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>SBCUTFLT</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>AVC_DIVIDER</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>AVCEN</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>SMUTESEL</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>DSP_AFCDIS</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the SSB receiver mode. </p>
<p>You can use this method for:</p>
<p>1) Enable or disable AFC track to carrier function for receiving normal AM signals;</p>
<p>2) Set the audio bandwidth;</p>
<p>3) Set the side band cutoff filter;</p>
<p>4) Set soft-mute based on RSSI or SNR;</p>
<p>5) Enable or disbable automatic volume control (AVC) function.</p>
<dl class="section see"><dt>See also</dt><dd>AN332 REV 0.8 UNIVERSAL PROGRAMMING GUIDE; page 24</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">AUDIOBW</td><td>SSB Audio bandwidth; 0 = 1.2kHz (default); 1=2.2kHz; 2=3kHz; 3=4kHz; 4=500Hz; 5=1kHz. </td></tr>
    <tr><td class="paramname">SBCUTFLT</td><td>SSB side band cutoff filter for band passand low pass filter if 0, the band pass filter to cutoff both the unwanted side band and high frequency component &gt; 2kHz of the wanted side band (default). </td></tr>
    <tr><td class="paramname">AVC_DIVIDER</td><td>set 0 for SSB mode; set 3 for SYNC mode. </td></tr>
    <tr><td class="paramname">AVCEN</td><td>SSB Automatic Volume Control (AVC) enable; 0=disable; 1=enable (default). </td></tr>
    <tr><td class="paramname">SMUTESEL</td><td>SSB Soft-mute Based on RSSI or SNR. </td></tr>
    <tr><td class="paramname">DSP_AFCDIS</td><td>DSP AFC Disable or enable; 0=SYNC MODE, AFC enable; 1=SSB MODE, AFC disable. </td></tr>
  </table>
  </dd>
</dl>

<p class="reference">References <a class="el" href="group__group17.html#gae1d866bfc4cb37c4268c8942b4b4d062">SI4735::sendSSBModeProperty()</a>.</p>

</div>
</div>
<a id="ga6cde26a5abf759a628012d1457d85c72" name="ga6cde26a5abf759a628012d1457d85c72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6cde26a5abf759a628012d1457d85c72">&#9670;&#160;</a></span>setSSBDspAfc()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setSSBDspAfc </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>DSP_AFCDIS</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets DSP AFC disable or enable. </p>
<dl class="section see"><dt>See also</dt><dd>AN332 REV 0.8 UNIVERSAL PROGRAMMING GUIDE; page 24</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DSP_AFCDIS</td><td>0 = SYNC mode, AFC enable; 1 = SSB mode, AFC disable </td></tr>
  </table>
  </dd>
</dl>

<p class="reference">References <a class="el" href="group__group17.html#gae1d866bfc4cb37c4268c8942b4b4d062">SI4735::sendSSBModeProperty()</a>.</p>

</div>
</div>
<a id="ga91251dfc2ff9488aaef3aa1a528097d9" name="ga91251dfc2ff9488aaef3aa1a528097d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga91251dfc2ff9488aaef3aa1a528097d9">&#9670;&#160;</a></span>setSSBSoftMute()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setSSBSoftMute </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>SMUTESEL</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets SSB Soft-mute Based on RSSI or SNR Selection: </p>
<dl class="section see"><dt>See also</dt><dd>AN332 REV 0.8 UNIVERSAL PROGRAMMING GUIDE; page 24</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SMUTESEL</td><td>0 = Soft-mute based on RSSI (default); 1 = Soft-mute based on SNR. </td></tr>
  </table>
  </dd>
</dl>

<p class="reference">References <a class="el" href="group__group17.html#gae1d866bfc4cb37c4268c8942b4b4d062">SI4735::sendSSBModeProperty()</a>.</p>

</div>
</div>
<a id="gacacf1dac4c0ec170d1da629dd1fd30cb" name="gacacf1dac4c0ec170d1da629dd1fd30cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacacf1dac4c0ec170d1da629dd1fd30cb">&#9670;&#160;</a></span>setSSBAutomaticVolumeControl()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setSSBAutomaticVolumeControl </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>AVCEN</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets SSB Automatic Volume Control (AVC) for SSB mode. </p>
<dl class="section see"><dt>See also</dt><dd>AN332 REV 0.8 UNIVERSAL PROGRAMMING GUIDE; page 24</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">AVCEN</td><td>0 = Disable AVC; 1 = Enable AVC (default). </td></tr>
  </table>
  </dd>
</dl>

<p class="reference">References <a class="el" href="group__group17.html#gae1d866bfc4cb37c4268c8942b4b4d062">SI4735::sendSSBModeProperty()</a>.</p>

</div>
</div>
<a id="gafc5e87c50a1eba6de9504c114cc1cb70" name="gafc5e87c50a1eba6de9504c114cc1cb70"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafc5e87c50a1eba6de9504c114cc1cb70">&#9670;&#160;</a></span>setSSBAvcDivider()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setSSBAvcDivider </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>AVC_DIVIDER</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets AVC Divider. </p>
<dl class="section see"><dt>See also</dt><dd>AN332 REV 0.8 UNIVERSAL PROGRAMMING GUIDE; page 24</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">AVC_DIVIDER</td><td>SSB mode, set divider = 0; SYNC mode, set divider = 3; Other values = not allowed. </td></tr>
  </table>
  </dd>
</dl>

<p class="reference">References <a class="el" href="group__group17.html#gae1d866bfc4cb37c4268c8942b4b4d062">SI4735::sendSSBModeProperty()</a>.</p>

</div>
</div>
<a id="ga7554815b6d83128c5b15206e69c51f9f" name="ga7554815b6d83128c5b15206e69c51f9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7554815b6d83128c5b15206e69c51f9f">&#9670;&#160;</a></span>setSSBSidebandCutoffFilter()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setSSBSidebandCutoffFilter </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>SBCUTFLT</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets SBB Sideband Cutoff Filter for band pass and low pass filters. </p>
<p>0 = Band pass filter to cutoff both the unwanted side band and high frequency components &gt; 2.0 kHz of the wanted side band. (default)</p>
<p>1 = Low pass filter to cutoff the unwanted side band. Other values = not allowed. </p><dl class="section see"><dt>See also</dt><dd>AN332 REV 0.8 UNIVERSAL PROGRAMMING GUIDE; page 24</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SBCUTFLT</td><td>0 or 1; see above </td></tr>
  </table>
  </dd>
</dl>

<p class="reference">References <a class="el" href="group__group17.html#gae1d866bfc4cb37c4268c8942b4b4d062">SI4735::sendSSBModeProperty()</a>.</p>

</div>
</div>
<a id="ga6b2ad4d027463262350134490d16bf32" name="ga6b2ad4d027463262350134490d16bf32"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6b2ad4d027463262350134490d16bf32">&#9670;&#160;</a></span>setSSBAudioBandwidth()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setSSBAudioBandwidth </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>AUDIOBW</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SSB Audio Bandwidth for SSB mode. </p>
<p>0 = 1.2 kHz low-pass filter (default).</p>
<p>1 = 2.2 kHz low-pass filter.</p>
<p>2 = 3.0 kHz low-pass filter.</p>
<p>3 = 4.0 kHz low-pass filter.</p>
<p>4 = 500 Hz band-pass filter for receiving CW signal, i.e. [250 Hz, 750 Hz] with center frequency at 500 Hz when USB is selected or [-250 Hz, -750 1Hz] with center frequency at -500Hz when LSB is selected* .</p>
<p>5 = 1 kHz band-pass filter for receiving CW signal, i.e. [500 Hz, 1500 Hz] with center frequency at 1 kHz when USB is selected or [-500 Hz, -1500 1 Hz] with center frequency at -1kHz when LSB is selected.</p>
<p>Other values = reserved.</p>
<p>If audio bandwidth selected is about 2 kHz or below, it is recommended to set SBCUTFLT[3:0] to 0 to enable the band pass filter for better high- cut performance on the wanted side band. Otherwise, set it to 1.</p>
<dl class="section see"><dt>See also</dt><dd>AN332 REV 0.8 UNIVERSAL PROGRAMMING GUIDE; page 24</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">AUDIOBW</td><td>the valid values are 0, 1, 2, 3, 4 or 5; see description above </td></tr>
  </table>
  </dd>
</dl>

<p class="reference">References <a class="el" href="group__group17.html#gae1d866bfc4cb37c4268c8942b4b4d062">SI4735::sendSSBModeProperty()</a>.</p>

</div>
</div>
<a id="ga3e907ddf560a0c8286fa55768701b3da" name="ga3e907ddf560a0c8286fa55768701b3da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3e907ddf560a0c8286fa55768701b3da">&#9670;&#160;</a></span>setSSB() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setSSB </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>usblsb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the radio to AM function. </p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000007">Todo:</a></b></dt><dd>Adjust the power up parameters</dd></dl>
<p>Set the radio to SSB (LW/MW/SW) function.</p>
<dl class="section see"><dt>See also</dt><dd>AN332 REV 0.8 UNIVERSAL PROGRAMMING GUIDE; pages 13 and 14 </dd>
<dd>
<a class="el" href="group__group08.html#ga753390952a1f2c2a98343979f1f3daa0" title="Sets the radio to AM function. It means: LW MW and SW.">setAM()</a> </dd>
<dd>
<a class="el" href="group__group08.html#ga794f6fe7987e146a0135b8e6fabec55c" title="Sets the current step value.">setFrequencyStep()</a> </dd>
<dd>
void <a class="el" href="group__group08.html#ga63d205f2d3169ba877a2bd2ee28d224f" title="Set the frequency to the corrent function of the Si4735 (FM, AM or SSB)">SI4735::setFrequency(uint16_t freq)</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">usblsb</td><td>upper or lower side band; 1 = LSB; 2 = USB </td></tr>
  </table>
  </dd>
</dl>

<p class="reference">References <a class="el" href="group__group07.html#ga3e228da65641f4dcf4253262e19bde9b">SI4735::radioPowerUp()</a>.</p>

</div>
</div>
<a id="ga7c48f2af416b1f89dbedbfbe9a637620" name="ga7c48f2af416b1f89dbedbfbe9a637620"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7c48f2af416b1f89dbedbfbe9a637620">&#9670;&#160;</a></span>setSSB() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setSSB </td>
          <td>(</td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>fromFreq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>toFreq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>initialFreq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>step</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>usblsb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Tunes the SSB (LSB or USB) receiver to a frequency between 150 and 30 MHz.</p>
<p>Via VFO you have 1kHz steps.</p>
<p>Via BFO you have 8Hz steps.</p>
<dl class="section see"><dt>See also</dt><dd>AN332 REV 0.8 UNIVERSAL PROGRAMMING GUIDE; pages 13 and 14 </dd>
<dd>
<a class="el" href="group__group08.html#ga753390952a1f2c2a98343979f1f3daa0" title="Sets the radio to AM function. It means: LW MW and SW.">setAM()</a> </dd>
<dd>
<a class="el" href="group__group08.html#ga794f6fe7987e146a0135b8e6fabec55c" title="Sets the current step value.">setFrequencyStep()</a> </dd>
<dd>
void <a class="el" href="group__group08.html#ga63d205f2d3169ba877a2bd2ee28d224f" title="Set the frequency to the corrent function of the Si4735 (FM, AM or SSB)">SI4735::setFrequency(uint16_t freq)</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fromFreq</td><td>minimum frequency for the band </td></tr>
    <tr><td class="paramname">toFreq</td><td>maximum frequency for the band </td></tr>
    <tr><td class="paramname">initialFreq</td><td>initial frequency </td></tr>
    <tr><td class="paramname">step</td><td>step used to go to the next channel </td></tr>
    <tr><td class="paramname">usblsb</td><td>SSB Upper Side Band (USB) and Lower Side Band (LSB) Selection; value 2 (banary 10) = USB; value 1 (banary 01) = LSB. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gae1d866bfc4cb37c4268c8942b4b4d062" name="gae1d866bfc4cb37c4268c8942b4b4d062"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae1d866bfc4cb37c4268c8942b4b4d062">&#9670;&#160;</a></span>sendSSBModeProperty()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::sendSSBModeProperty </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Just send the property SSB_MOD to the device. Internal use (privete method). </p>

<p class="reference">References <a class="el" href="group__group06.html#ga7b45c1b22c3c1a3f2326bee913d1e1e0">SI4735::waitToSend()</a>.</p>

<p class="reference">Referenced by <a class="el" href="group__group17.html#ga6b2ad4d027463262350134490d16bf32">SI4735::setSSBAudioBandwidth()</a>, <a class="el" href="group__group17.html#gacacf1dac4c0ec170d1da629dd1fd30cb">SI4735::setSSBAutomaticVolumeControl()</a>, <a class="el" href="group__group17.html#gafc5e87c50a1eba6de9504c114cc1cb70">SI4735::setSSBAvcDivider()</a>, <a class="el" href="group__group17.html#ga9224e7d4ef14c887da96dbefd2dcefd3">SI4735::setSSBConfig()</a>, <a class="el" href="group__group17.html#ga6cde26a5abf759a628012d1457d85c72">SI4735::setSSBDspAfc()</a>, <a class="el" href="group__group17.html#ga7554815b6d83128c5b15206e69c51f9f">SI4735::setSSBSidebandCutoffFilter()</a>, and <a class="el" href="group__group17.html#ga91251dfc2ff9488aaef3aa1a528097d9">SI4735::setSSBSoftMute()</a>.</p>

</div>
</div>
<a id="ga5507f4d98f389247320eb19b16395a27" name="ga5507f4d98f389247320eb19b16395a27"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5507f4d98f389247320eb19b16395a27">&#9670;&#160;</a></span>getSsbAgcStatus()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::getSsbAgcStatus </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Queries SSB Automatic Gain Control STATUS. </p>
<p>After call this method, you can call isAgcEnabled to know the AGC status and getAgcGainIndex to know the gain index value.</p>
<dl class="section see"><dt>See also</dt><dd>AN332 REV 0.8 Universal Programming Guide Amendment for SI4735-D60 SSB and NBFM patches; page 18. </dd></dl>

<p class="reference">References <a class="el" href="group__group06.html#ga7b45c1b22c3c1a3f2326bee913d1e1e0">SI4735::waitToSend()</a>.</p>

</div>
</div>
<a id="ga2da03a7257b7ca821f984bfa7fef97fa" name="ga2da03a7257b7ca821f984bfa7fef97fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2da03a7257b7ca821f984bfa7fef97fa">&#9670;&#160;</a></span>setSsbAgcOverrite()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::setSsbAgcOverrite </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>SSBAGCDIS</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>SSBAGCNDX</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>reserved</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Automatic Gain Control setup. </p>
<p>Overrides the SSB AGC setting by disabling the AGC and forcing the gain index that ranges between 0 (minimum attenuation) and 37+ATTN_BACKUP (maximum attenuation).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">uint8_t</td><td>SSBAGCDIS This param selects whether the AGC is enabled or disabled (0 = AGC enabled; 1 = AGC disabled); </td></tr>
    <tr><td class="paramname">uint8_t</td><td>SSBAGCNDX If 1, this byte forces the AGC gain index. if 0, Minimum attenuation (max gain) </td></tr>
  </table>
  </dd>
</dl>

<p class="reference">References <a class="el" href="group__group06.html#ga7b45c1b22c3c1a3f2326bee913d1e1e0">SI4735::waitToSend()</a>.</p>

</div>
</div>
<a id="gadfc2c82524918224cf19fec5b7fcf6d1" name="gadfc2c82524918224cf19fec5b7fcf6d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadfc2c82524918224cf19fec5b7fcf6d1">&#9670;&#160;</a></span>queryLibraryId()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group01.html#unionsi47x__firmware__query__library">si47x_firmware_query_library</a> SI4735::queryLibraryId </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Query the library information of the Si47XX device. </p>
<p>SI47XX PATCH RESOURCES</p>
<p>Used to confirm if the patch is compatible with the internal device library revision.</p>
<p>You have to call this function if you are applying a patch on SI47XX (SI4735-D60/SI4732-A10).</p>
<p>The first command that is sent to the device is the POWER_UP command to confirm that the patch is compatible with the internal device library revision.</p>
<p>The device moves into the powerup mode, returns the reply, and moves into the powerdown mode.</p>
<p>The POWER_UP command is sent to the device again to configure the mode of the device and additionally is used to start the patching process.</p>
<p>When applying the patch, the PATCH bit in ARG1 of the POWER_UP command must be set to 1 to begin the patching process. [AN332 (REV 1.0) page 219].</p>
<dl class="section see"><dt>See also</dt><dd>Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); pages 64 and 215-220. </dd>
<dd>
struct <a class="el" href="group__group01.html#unionsi47x__firmware__query__library" title="Firmware Query Library ID response.">si47x_firmware_query_library</a></dd></dl>
<dl class="section return"><dt>Returns</dt><dd>a struct <a class="el" href="group__group01.html#unionsi47x__firmware__query__library" title="Firmware Query Library ID response.">si47x_firmware_query_library</a> (see it in <a class="el" href="_s_i4735_8h.html">SI4735.h</a>) </dd></dl>

<p class="reference">References <a class="el" href="group__group07.html#gaa554b3390fb6c5a4d6661b96afae73ae">SI4735::powerDown()</a>, and <a class="el" href="group__group06.html#ga7b45c1b22c3c1a3f2326bee913d1e1e0">SI4735::waitToSend()</a>.</p>

<p class="reference">Referenced by <a class="el" href="group__group17.html#ga03bfe4b1e5ec84b7a933309095215f38">SI4735::loadCompressedPatch()</a>, <a class="el" href="group__group17.html#ga591bbfe4dbd39a6de29a37935a6abee5">SI4735::loadPatch()</a>, and <a class="el" href="group__group20.html#gadd298b10c6c7e760e7233b50500773c3">SI4735::loadPatchNBFM()</a>.</p>

</div>
</div>
<a id="gafaabd6c73b7ad7c20ae959d5b75c1e71" name="gafaabd6c73b7ad7c20ae959d5b75c1e71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafaabd6c73b7ad7c20ae959d5b75c1e71">&#9670;&#160;</a></span>patchPowerUp()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::patchPowerUp </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This method can be used to prepare the device to apply SSBRX patch. </p>
<p>Call queryLibraryId before call this method. Powerup the device by issuing the POWER_UP command with FUNC = 1 (AM/SW/LW Receive).</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__group08.html#ga7bf47d3aab5952fa8895bd9094256dd8" title="Set the Max Delay after Set Frequency.">setMaxDelaySetFrequency()</a> </dd>
<dd>
<a class="el" href="_s_i4735_8h.html#a921cafdf244d2d7db9eeffa524e11663">MAX_DELAY_AFTER_POWERUP</a> </dd>
<dd>
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); pages 64 and 215-220 and </dd>
<dd>
AN332 REV 0.8 UNIVERSAL PROGRAMMING GUIDE AMENDMENT FOR SI4735-D60 SSB AND NBFM PATCHES; page 7. </dd></dl>

<p class="reference">References <a class="el" href="group__group06.html#ga7b45c1b22c3c1a3f2326bee913d1e1e0">SI4735::waitToSend()</a>.</p>

<p class="reference">Referenced by <a class="el" href="group__group17.html#ga03bfe4b1e5ec84b7a933309095215f38">SI4735::loadCompressedPatch()</a>, and <a class="el" href="group__group17.html#ga591bbfe4dbd39a6de29a37935a6abee5">SI4735::loadPatch()</a>.</p>

</div>
</div>
<a id="ga0fcfd8e487c594707b3f2aaa71a86d68" name="ga0fcfd8e487c594707b3f2aaa71a86d68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0fcfd8e487c594707b3f2aaa71a86d68">&#9670;&#160;</a></span>ssbPowerUp()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::ssbPowerUp </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function can be useful for debug and test. </p>

<p class="reference">References <a class="el" href="group__group06.html#ga7b45c1b22c3c1a3f2326bee913d1e1e0">SI4735::waitToSend()</a>.</p>

</div>
</div>
<a id="gafd1343bd8b4f0c290ef81c418222036c" name="gafd1343bd8b4f0c290ef81c418222036c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafd1343bd8b4f0c290ef81c418222036c">&#9670;&#160;</a></span>downloadPatch()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool SI4735::downloadPatch </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>ssb_patch_content</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint16_t&#160;</td>
          <td class="paramname"><em>ssb_patch_content_size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Transfers the content of a patch stored in a array of bytes to the <a class="el" href="class_s_i4735.html" title="SI4735 Class.">SI4735</a> device. </p>
<p>You must mount an array as shown below and know the size of that array as well.</p>
<p>Patches for the <a class="el" href="class_s_i4735.html" title="SI4735 Class.">SI4735</a> are distributed in binary form and are transferred to the internal RAM of the device by the host MCU (in this case, Arduino boards). Since the RAM is volatile memory, the patch stored on the device gets lost when you turn off the system. Consequently, the content of the patch has to be transferred to the device every time the device is powered up.</p>
<p>The disadvantage of this approach is the amount of memory used by the patch content. This may limit the use of other radio functions you want implemented in Arduino.</p>
<p>Example of content: </p><div class="fragment"><div class="line"><span class="keyword">const</span> PROGMEM uint8_t ssb_patch_content_full[] =</div>
<div class="line"> { <span class="comment">// SSB patch for whole SSBRX full download</span></div>
<div class="line">     0x15, 0x00, 0x0F, 0xE0, 0xF2, 0x73, 0x76, 0x2F,</div>
<div class="line">     0x16, 0x6F, 0x26, 0x1E, 0x00, 0x4B, 0x2C, 0x58,</div>
<div class="line">     0x16, 0xA3, 0x74, 0x0F, 0xE0, 0x4C, 0x36, 0xE4,</div>
<div class="line">        .</div>
<div class="line">        .</div>
<div class="line">        .</div>
<div class="line">     0x16, 0x3B, 0x1D, 0x4A, 0xEC, 0x36, 0x28, 0xB7,</div>
<div class="line">     0x16, 0x00, 0x3A, 0x47, 0x37, 0x00, 0x00, 0x00,</div>
<div class="line">     0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0x29};</div>
<div class="line"> </div>
<div class="line"><span class="keyword">const</span> <span class="keywordtype">int</span> size_content_full = <span class="keyword">sizeof</span> ssb_patch_content_full;</div>
</div><!-- fragment --><dl class="section see"><dt>See also</dt><dd>Si47XX PROGRAMMING GUIDE; ;AN332 (REV 1.0) pages 64 and 215-220.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ssb_patch_content</td><td>point to array of bytes content patch. </td></tr>
    <tr><td class="paramname">ssb_patch_content_size</td><td>array size (number of bytes). The maximum size allowed for a patch is 15856 bytes</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if an error is found. </dd></dl>

</div>
</div>
<a id="gaf1b8947db928728ada66ef3edaa79e76" name="gaf1b8947db928728ada66ef3edaa79e76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf1b8947db928728ada66ef3edaa79e76">&#9670;&#160;</a></span>downloadCompressedPatch()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool SI4735::downloadCompressedPatch </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>ssb_patch_content</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint16_t&#160;</td>
          <td class="paramname"><em>ssb_patch_content_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint16_t *&#160;</td>
          <td class="paramname"><em>cmd_0x15</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int16_t&#160;</td>
          <td class="paramname"><em>cmd_0x15_size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Deal with compressed SSB patch. </p>
<p>It works like the downloadPatch method but requires less memory to store the patch.</p>
<p>Transfers the content of a patch stored in a compressed array of bytes to the <a class="el" href="class_s_i4735.html" title="SI4735 Class.">SI4735</a> device.</p>
<p>In the <a class="el" href="patch__init_8h.html">patch_init.h</a> and <a class="el" href="patch__full_8h.html">patch_full.h</a> files, the first byte of each line begins with either a 0x15 or 0x16 value</p>
<p>To shrink the original patch size stored on the master MCU (Arduino), the first byte</p>
<p>is omitted and a new array is added to indicate which lines begin with the value 0x15.</p>
<p>For the other lines, the downloadCompressedPatch method will insert the value 0x16.</p>
<p>The value 0x16 occurs on most lines in the patch. This approach will save about 1K of memory.</p>
<p>The example code below shows how to use compressed SSB patch. </p><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="patch__ssb__compressed_8h.html">patch_ssb_compressed.h</a>&gt;</span> <span class="comment">// SSB patch for whole SSBRX initialization string</span></div>
<div class="line"><span class="keyword">const</span> uint16_t size_content = <span class="keyword">sizeof</span> <a class="code hl_variable" href="patch__full_8h.html#a52825929f968bc7a855a559fa9ebba7b">ssb_patch_content</a>; <span class="comment">// See ssb_patch_content.h</span></div>
<div class="line"><span class="keyword">const</span> uint16_t cmd_0x15_size = <span class="keyword">sizeof</span> <a class="code hl_variable" href="patch__ssb__compressed_8h.html#aa53e4395accdd894bda0ffc72219f8cb">cmd_0x15</a>;         <span class="comment">// Array of lines where the 0x15 command occurs in the patch content.</span></div>
<div class="line"> </div>
<div class="line"><span class="keywordtype">void</span> loadSSB()</div>
<div class="line">{</div>
<div class="line">  .</div>
<div class="line">  .</div>
<div class="line">  rx.setI2CFastModeCustom(500000);</div>
<div class="line">  rx.queryLibraryId();</div>
<div class="line">  rx.patchPowerUp();</div>
<div class="line">  delay(50);</div>
<div class="line">  rx.downloadCompressedPatch(<a class="code hl_variable" href="patch__full_8h.html#a52825929f968bc7a855a559fa9ebba7b">ssb_patch_content</a>, size_content, <a class="code hl_variable" href="patch__ssb__compressed_8h.html#aa53e4395accdd894bda0ffc72219f8cb">cmd_0x15</a>, cmd_0x15_size);</div>
<div class="line">  rx.setSSBConfig(bandwidthSSB[bwIdxSSB].idx, 1, 0, 1, 0, 1);</div>
<div class="line">  rx.setI2CStandardMode();</div>
<div class="line">  .</div>
<div class="line">  .</div>
<div class="line">}</div>
<div class="ttc" id="apatch__full_8h_html_a52825929f968bc7a855a559fa9ebba7b"><div class="ttname"><a href="patch__full_8h.html#a52825929f968bc7a855a559fa9ebba7b">ssb_patch_content</a></div><div class="ttdeci">const PROGMEM uint8_t ssb_patch_content[]</div><div class="ttdef"><b>Definition:</b> patch_full.h:23</div></div>
<div class="ttc" id="apatch__ssb__compressed_8h_html"><div class="ttname"><a href="patch__ssb__compressed_8h.html">patch_ssb_compressed.h</a></div></div>
<div class="ttc" id="apatch__ssb__compressed_8h_html_aa53e4395accdd894bda0ffc72219f8cb"><div class="ttname"><a href="patch__ssb__compressed_8h.html#aa53e4395accdd894bda0ffc72219f8cb">cmd_0x15</a></div><div class="ttdeci">const PROGMEM uint16_t cmd_0x15[]</div><div class="ttdef"><b>Definition:</b> patch_ssb_compressed.h:54</div></div>
</div><!-- fragment --> <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__group17.html#gafd1343bd8b4f0c290ef81c418222036c" title="Transfers the content of a patch stored in a array of bytes to the SI4735 device.">downloadPatch</a> </dd>
<dd>
<a class="el" href="patch__ssb__compressed_8h.html">patch_ssb_compressed.h</a>, <a class="el" href="patch__init_8h.html">patch_init.h</a>, <a class="el" href="patch__full_8h.html">patch_full.h</a> </dd>
<dd>
SI47XX_03_ALL_IN_ONE_NEW_INTERFACE_V15.ino </dd>
<dd>
SI47XX_09_NOKIA_5110/ALL_IN_ONE_7_BUTTONS/ALL_IN_ONE_7_BUTTONS.ino </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ssb_patch_content</td><td>point to array of bytes content patch. </td></tr>
    <tr><td class="paramname">ssb_patch_content_size</td><td>array size (number of bytes). The maximum size allowed for a patch is 15856 bytes </td></tr>
    <tr><td class="paramname">cmd_0x15</td><td>Array of lines where the first byte of each patch content line is 0x15 </td></tr>
    <tr><td class="paramname">cmd_0x15_size</td><td>Array size </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga591bbfe4dbd39a6de29a37935a6abee5" name="ga591bbfe4dbd39a6de29a37935a6abee5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga591bbfe4dbd39a6de29a37935a6abee5">&#9670;&#160;</a></span>loadPatch()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::loadPatch </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>ssb_patch_content</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint16_t&#160;</td>
          <td class="paramname"><em>ssb_patch_content_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>ssb_audiobw</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Loads a given SSB patch content. </p>
<p>Configures the Si4735-D60/SI4732-A10 device to work with SSB.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ssb_patch_content</td><td>point to patch content array </td></tr>
    <tr><td class="paramname">ssb_patch_content_size</td><td>size of patch content </td></tr>
    <tr><td class="paramname">ssb_audiobw</td><td>SSB Audio bandwidth; 0 = 1.2kHz (default); 1=2.2kHz; 2=3kHz; 3=4kHz; 4=500Hz; 5=1kHz. </td></tr>
  </table>
  </dd>
</dl>

<p class="reference">References <a class="el" href="group__group17.html#gafaabd6c73b7ad7c20ae959d5b75c1e71">SI4735::patchPowerUp()</a>, and <a class="el" href="group__group17.html#gadfc2c82524918224cf19fec5b7fcf6d1">SI4735::queryLibraryId()</a>.</p>

</div>
</div>
<a id="ga03bfe4b1e5ec84b7a933309095215f38" name="ga03bfe4b1e5ec84b7a933309095215f38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga03bfe4b1e5ec84b7a933309095215f38">&#9670;&#160;</a></span>loadCompressedPatch()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SI4735::loadCompressedPatch </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>ssb_patch_content</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint16_t&#160;</td>
          <td class="paramname"><em>ssb_patch_content_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint16_t *&#160;</td>
          <td class="paramname"><em>cmd_0x15</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int16_t&#160;</td>
          <td class="paramname"><em>cmd_0x15_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>ssb_audiobw</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Loads the SSB compressed patch content. </p>
<p>Configures the Si4735-D60/SI4732-A10 device to work with SSB.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ssb_patch_content</td><td>point to patch content array </td></tr>
    <tr><td class="paramname">ssb_patch_content_size</td><td>size of patch content </td></tr>
    <tr><td class="paramname">cmd_0x15</td><td>Array of lines where the first byte of each patch content line is 0x15 </td></tr>
    <tr><td class="paramname">cmd_0x15_size</td><td>Array size </td></tr>
    <tr><td class="paramname">ssb_audiobw</td><td>SSB Audio bandwidth; 0 = 1.2kHz (default); 1=2.2kHz; 2=3kHz; 3=4kHz; 4=500Hz; 5=1kHz. </td></tr>
  </table>
  </dd>
</dl>

<p class="reference">References <a class="el" href="group__group17.html#gafaabd6c73b7ad7c20ae959d5b75c1e71">SI4735::patchPowerUp()</a>, and <a class="el" href="group__group17.html#gadfc2c82524918224cf19fec5b7fcf6d1">SI4735::queryLibraryId()</a>.</p>

</div>
</div>
<a id="ga7751b076ce0bcb62eade4f92cd8d93a6" name="ga7751b076ce0bcb62eade4f92cd8d93a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7751b076ce0bcb62eade4f92cd8d93a6">&#9670;&#160;</a></span>downloadPatchFromEeprom()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group01.html#unionsi4735__eeprom__patch__header">si4735_eeprom_patch_header</a> SI4735::downloadPatchFromEeprom </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>eeprom_i2c_address</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Transfers the content of a patch stored in an eeprom to the <a class="el" href="class_s_i4735.html" title="SI4735 Class.">SI4735</a> device. </p>
<p>To used this method, you will need an eeprom with the patch content stored into it.</p>
<p>This content have to be generated by the sketch <a href="https://github.com/pu2clr/SI4735/tree/master/examples/TOOLS/SI47XX_09_SAVE_SSB_PATCH_EEPROM">SI47XX_09_SAVE_SSB_PATCH_EEPROM</a> on folder TOOLS.</p>
<dl class="section see"><dt>See also</dt><dd>SI47XX_09_SAVE_SSB_PATCH_EEPROM </dd>
<dd>
<a class="el" href="group__group01.html#unionsi4735__eeprom__patch__header" title="patch header stored in a eeprom">si4735_eeprom_patch_header</a> <a href="https://github.com/pu2clr/SI4735/tree/master/examples/TOOLS/SI47XX_09_SAVE_SSB_PATCH_EEPROM">https://github.com/pu2clr/SI4735/tree/master/examples/TOOLS/SI47XX_09_SAVE_SSB_PATCH_EEPROM</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">eeprom_i2c_address</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if an error is found. </dd></dl>

<p class="reference">References <a class="el" href="group__group06.html#ga7b45c1b22c3c1a3f2326bee913d1e1e0">SI4735::waitToSend()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
  </ul>
</div>
</body>
</html>
